In the last few years, a very advanced data processing device has become commercially available. This device known as a microprocessor, is sold by a variety of companies and generally includes a plurality of address terminals, several bi-directional data terminals and internal control circuitry for processing several types of machine cycles. These microprocessors are produced in accordance with integrated circuit technology of the PMOS and the NMOS type. The versatility of these microprocessors or "microprocessing chips", as they are known, is well known in the art of controlling machine operation. A variety of attempts have been made to utilize the standard microprocessor as the heart of the programmable controller which can control machines and logic systems. However, general attempts to use the microprocessor for a controller function has resulted in complex software requirements. The microprocessor has relatively limited capabilities. Four or six eight bit data bus are generally available and only 16 address lines. In addition, internal processing by the microprocessor is limited so that a substantial number of software steps or program steps must be generated to perform even somewhat simple logic operations. Since a standard microprocessor generally includes four or eight data terminals, it is extremely difficult to process single bit information of the type contemplated in prior U.S. Pat. No. 3,827,030. This patent is also incorporated by reference. Such single bit information requires extensive software for masking of data lines and for shifting data between lines. These and other disadvantages have been overcome by a programmable controller disclosed in the prior U.S. application incorporated by reference herein.
When using a programmable controller utilizing a microprocessor, there is a necessity to load a program into several memory chips or units which are usually of the programmable read only memory (PROM) type. This necessity has caused substantial difficulty in programmable controllers generally and in programmable controllers using microprocessors in specific. Often the memory chips or units are programmed externally of the system and then coupled in selected locations of the system. This requires substantial care to assure proper memory insertion. In addition, the compatibility between a preprogrammed PROM unit and the microprocessor controller may not be positive. This can result in a variety of errors. In addition, the programming of the various program memory units requires a substantially higher voltage than available for operating the logic in the controller itself. Normally the controller employs two voltage sources of 4-5 volts D.C. and 12 volts D.C. Available memory chips or memory units for use in microprocessor controllers usually need a programming voltage of approximately 25-27 volts to assure proper programming. This presents substantial difficulty. A separate power source is generally applied to the memory chip or unit during programming of the chip. This program voltage must be applied to the proper chip simultaneously with the program data being fed into the various memory locations. Often, this requires that each memory chip be disassembled from the system and separately programmed with an external higher program voltage source. After programming, the memory chip must be marked so that its place in the system will be distinguishable. Still, it is possible to apply the chip in the improper position and cause improper operation of the total programmable controller.
Some attempts have been made to program the memory chips on the supporting memory module including several chips. Generally, this requires the disconnection of the chips on the module from the system circuitry and then the application of external information and external programming voltage. Care must be taken to apply the programming voltage to the proper disconnected chip since the data is generally available to all memory chips on a given module. Many of the memory units now used as PROM units are erasable by exposure to ultraviolet light. This is a well known concept. Thus, provisions are made available to apply ultraviolet light to the memory chips for erasure prior to programming. This assures a known initial data state for the various locations. Thereafter, programming can be applied to the chips. This practice again presents some difficulty in programming of the chip of a memory module. Removal of the chip from the memory module for erasing is time consuming and difficult to perform. If the ultraviolet erasing operation is performed while the chips are mounted on the memory module, subsequent programming still involves the difficulty of isolating the chips and applying program or programming voltage to the proper chip.
The present invention relates to a programming module for use in a programmable controller employing a microprocessor, which module can be used as an integral part of the programming system and as an interface between the memory module and the system itself during the actual programming operation. In this manner, programming of the chips on the module is accomplished with the memory module in the proper location in the system. This prevents any inadvertent incompatibility between the programmed memory module and the programmable controller itself. The module is then usable in only the programmed location. Each of the memory modules can be identical. Their location is determined by the location in which they are programmed by the novel programming module. The present invention utilizes a self-addressing concept in the hardwire circuits of the system so that the address of a memory module is the location into which it is inserted. Basically, the present invention relates to an improved programming module for a programmable controller of the type described above.